﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Configuration;
using System.Data.SqlClient;

namespace SW_SoftBully.Models.ModuloServicios.QuejasySugerencias
{
    public class QuejasySugerenciasDAO : Controller
    {
        //
        // GET: /QuejasySugerenciasDAO/
        public string RegistrarCuotaExtraordinaria(QuejasySugerenciasBean quejaySugerencia)
        {
            try
            {
                String cadenaConfiguracion = ConfigurationManager.ConnectionStrings["SoftBully"].ConnectionString;              
                SqlConnection sqlCon = new SqlConnection(cadenaConfiguracion);
                sqlCon.Open();
                string commandString = "INSERT INTO quejas_sugerencias (Descripcion,Lugar,estado,idEdificio,fecha,tipo) "+
                    "VALUES ('" + quejaySugerencia.TextAreaQuejasySugerencias + "','" + quejaySugerencia.Lugar + "',1," + quejaySugerencia.id_Edificio +
                    ",convert(datetime,'" + quejaySugerencia.fecha + "',103)," + quejaySugerencia.tipo + ")";                   
                System.Diagnostics.Debug.WriteLine("--------------------------------------> llego" + commandString);
                SqlCommand sqlCmd = new SqlCommand(commandString, sqlCon);
                sqlCmd.ExecuteNonQuery();
                sqlCon.Close();
                quejaySugerencia.conexion = "Bien";
            }
            catch
            {
                quejaySugerencia.conexion = "Conexion Fallida";
            }
            return quejaySugerencia.conexion;
        }

        public List<QuejasySugerenciasBean> ListarQuejasySugerencias(QuejasySugerenciasBean quejaySugerencia)
        {
            try
            {
                List<QuejasySugerenciasBean> listaQuejasySugerencias = new List<QuejasySugerenciasBean>();

                String cadenaConfiguracion = ConfigurationManager.ConnectionStrings["SoftBully"].ConnectionString;

                SqlConnection sqlCon = new SqlConnection(cadenaConfiguracion);

                sqlCon.Open();

                string commandString = "SELECT q.*, e.nombre from quejas_sugerencias q, edificio e where q.idEdificio = e.id_Edificio";

                System.Diagnostics.Debug.WriteLine("--------------------------------------> llego" + commandString);

                if (quejaySugerencia.FechaI != null)
                {commandString += " and q.fecha >= convert(datetime,'"+quejaySugerencia.FechaI+"',103)";}
                if (quejaySugerencia.FechaF != null)
                {commandString += " and q.fecha <= convert(datetime,'" + quejaySugerencia.FechaF + "',103)";}
                if (quejaySugerencia.id_Edificio != 0)
                { commandString += " and q.idEdificio = " + quejaySugerencia.id_Edificio; }
                if (quejaySugerencia.tipo != 0)
                { commandString += " and q.tipo = " + quejaySugerencia.tipo; }
                if (quejaySugerencia.estado != 0)
                { commandString += " and q.estado = " + quejaySugerencia.estado; }

                SqlCommand sqlCmd = new SqlCommand(commandString, sqlCon);

                SqlDataReader dataReader = sqlCmd.ExecuteReader();

                while (dataReader.Read())
                {
                    QuejasySugerenciasBean QuejaySugerencia = new QuejasySugerenciasBean();
                    QuejaySugerencia.idQuejas = (int)dataReader[0];
                    QuejaySugerencia.TextAreaQuejasySugerencias = (string)dataReader[1];
                    QuejaySugerencia.Lugar = (string)dataReader[2];
                    QuejaySugerencia.estado = (int)dataReader[4];
                    QuejaySugerencia.id_Edificio = (int)dataReader[5];
                    QuejaySugerencia.fecha = ((DateTime)dataReader[6]).ToString("dd/MM/yyyy");
                    QuejaySugerencia.tipo = (int)dataReader[7];
                    QuejaySugerencia.NombreEdificio = (string)dataReader[8];
                    listaQuejasySugerencias.Add(QuejaySugerencia);
                }

                dataReader.Close();
                
                
                sqlCon.Close();
                return listaQuejasySugerencias;
            }
            catch
            {
                return null;
            }
        }

        public string modificarQuejaySugerencia(QuejasySugerenciasBean quejaySugerencia)
        {
            try
            {
                String cadenaConfiguracion = ConfigurationManager.ConnectionStrings["SoftBully"].ConnectionString;

                SqlConnection sqlCon = new SqlConnection(cadenaConfiguracion);

                sqlCon.Open();

                string commandString = "UPDATE quejas_sugerencias SET Lugar = '" + quejaySugerencia.Lugar + "', Descripcion = '" +
                    quejaySugerencia.TextAreaQuejasySugerencias + "' WHERE Id_Quejas = " + quejaySugerencia.idQuejas;
                System.Diagnostics.Debug.WriteLine("--------------------------------------> llego" + commandString);
                SqlCommand sqlCmd = new SqlCommand(commandString, sqlCon);
                sqlCmd.ExecuteNonQuery();

                sqlCon.Close();

                quejaySugerencia.conexion = "Bien";

            }

            catch
            {
                quejaySugerencia.conexion = "Conexion Fallida";
            }

            return quejaySugerencia.conexion;
        }
        public string EliminarQuejaySugerencia(QuejasySugerenciasBean quejaySugerencia)
        {
            try
            {
                String cadenaConfiguracion = ConfigurationManager.ConnectionStrings["SoftBully"].ConnectionString;

                SqlConnection sqlCon = new SqlConnection(cadenaConfiguracion);

                sqlCon.Open();

                string commandString = "UPDATE quejas_sugerencias SET Estado = 0 WHERE Id_Quejas = "
                    + quejaySugerencia.idQuejas;
                System.Diagnostics.Debug.WriteLine("--------------------------------------> llego" + commandString);
                SqlCommand sqlCmd = new SqlCommand(commandString, sqlCon);
                sqlCmd.ExecuteNonQuery();
                sqlCon.Close();

                quejaySugerencia.conexion = "Bien";
            }
            catch
            { quejaySugerencia.conexion = "Conexion Fallida"; }
            return quejaySugerencia.conexion;
        }

    }
}
